/* 
 * File:   PeakFunction.h
 * Author: jcrada
 *
 * Created on 25 April 2012, 11:09 PM
 */

#ifndef ECB_PEAKFUNCTION_H
#define	ECB_PEAKFUNCTION_H

#include "ecb/scalar.h"
#include <vector>

namespace ecb {
    class Matrix2D;
    namespace mpb {

        class PeakFunction {
        public:

            PeakFunction() { }

            virtual ~PeakFunction() { }

            virtual scalar f(const std::vector<scalar>& x, const Matrix2D& peaks, int peakIndex) = 0;
            virtual std::string toString() const = 0;
        };
    }
}

#endif	/* ECB_PEAKFUNCTION_H */

